/*
 *  algorithms.h
 *  Classifier
 *
 *  Daniel Wojcik
 *
 */
 
#ifndef algorithms_h_
#define algorithms_h_

#include <math.h>
#include <queue>
#include <stack>
#include "DocItem.h"

void stats(Globals& global);
void classify(DocItem& dcmt, Globals& global);
void characterizeClasses(Globals& global);
void characterizeDocument(DocItem& dcmt, Globals& global);
void updateWeights(DocItem* dcmt, Globals& global);
void cluster(Globals& global);
void cull(Globals& global);
void classPrint(Globals& global);
void clusterPrint(Globals& global);

double termToDouble(TermShort& old);
double termToDouble(TermStat& old);
double termToDouble(TermStat& old, std::string cls);

void cClassify(DocItem& dcmt, Globals& global);
void nClassify(DocItem& dcmt, Globals& global);
void nearCluster(Globals& global);

void svmClassify(DocItem& dcmt, Globals& global);
void svmCluster(Globals& global);

void ejcClassify(DocItem& dcmt, Globals& global);

#endif
